package cn.ynrcb.personnelfile.admin.entity;

import cn.ynrcb.personnelfile.common.validator.group.AddGroup;
import cn.ynrcb.personnelfile.common.validator.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 整改需求信息表
 * 
 * @author wujianfan
 * @email fanxipo@qq.com
 * @date 2022-12-06 23:14:59
 */
@ApiModel(value = "整改需求信息实体")
@Data
@TableName("tb_demand_info")
public class DemandInfoEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 需求主键id
	 */
	@ApiModelProperty(hidden = true)
	@TableId
	private Long id;
	/**
	 * 需求工单号
	 */
	@ApiModelProperty(hidden = true)
	private String orderNumber;
	/**
	 * 需求类型（1-纤改，2-）
	 */
	@ApiModelProperty(value = "需求类型", name = "type", required = true, example = "1")
	@NotNull(message="需求类型不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer type;
	/**
	 * 机房名称
	 */
	@ApiModelProperty(value = "机房名称", name = "equipmentRoom", required = true, example = "XXX机房")
	@NotBlank(message="机房名称不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String equipmentRoom;
	/**
	 * 现场联系人
	 */
	@ApiModelProperty(value = "现场联系人", name = "sitePerson", required = true, example = "张XX")
	@NotBlank(message="现场联系人不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String sitePerson;
	/**
	 * 现场联系电话
	 */
	@ApiModelProperty(value = "现场联系电话", name = "sitePersonPhone", required = true, example = "13700000000")
	@NotBlank(message="现场联系电话不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String sitePersonPhone;
	/**
	 * 隐患内容
	 */
	@ApiModelProperty(value = "隐患内容", name = "issueInfo", required = true, example = "XXXXXXXXXXXXXXXXXXXXXXXXXX")
	@NotBlank(message="隐患内容不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String issueInfo;
	/**
	 * 隐患发现时间
	 */
	@ApiModelProperty(value = "隐患发现时间", name = "discoveryDate", required = true, example = "2022-12-14 22:57:30")
	@NotBlank(message="隐患发现时间不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Date discoveryDate;
	/**
	 * 现场照片
	 */
	@ApiModelProperty(value = "现场照片附件ids", name = "sitePhoto", required = true, example = "1,2,3")
	@NotBlank(message="现场照片附件ids不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String sitePhoto;
	/**
	 * 维护处理人员id
	 */
	@ApiModelProperty(hidden = true)
	private String dealUserIds;
	/**
	 * INOP工单号
	 */
	@ApiModelProperty(hidden = true)
	private String inopOrderNumber;
	/**
	 * 备注
	 */
	@ApiModelProperty(hidden = true)
	private String remark;
	/**
	 * 审核状态（-1-待审核，1-需求审核通过，2-需求审核不通过）
	 */
	@ApiModelProperty(hidden = true)
	private Integer auditStatus;
	/**
	 * 审核人
	 */
	@ApiModelProperty(hidden = true)
	private Long auditUserId;
	/**
	 * 审核时间
	 */
	@ApiModelProperty(hidden = true)
	private Date auditTime;
	/**
	 * 审核备注
	 */
	@ApiModelProperty(hidden = true)
	private String auditRemark;
	/**
	 * 状态
	 */
	@ApiModelProperty(hidden = true)
	private Integer status;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(hidden = true)
	private Date creatTime;
	/**
	 * 创建人
	 */
	@ApiModelProperty(hidden = true)
	private Long creatUserId;
	/**
	 * 更新时间
	 */
	@ApiModelProperty(hidden = true)
	private Date updateTime;
	/**
	 * 更新人
	 */
	@ApiModelProperty(hidden = true)
	private Long updateUserId;
	/**
	 * 处理审核状态（-1-待处理，1-处理通过，2-处理不通过)
	 */
	@ApiModelProperty(hidden = true)
	private Integer dealAuditStatus;
	/**
	 * 处理审核人
	 */
	@ApiModelProperty(hidden = true)
	private Long dealAuditUserId;
	/**
	 * 处理审核时间
	 */
	@ApiModelProperty(hidden = true)
	private Date dealAuditTime;
	/**
	 * 处理审核备注
	 */
	@ApiModelProperty(hidden = true)
	private String dealAuditRemark;

}
